C++音视频处理实战:从入门到精通
📚 共计 30 章节
01
C++音视频开发环境搭建
FFmpeg、OpenCV、SDL等核心库的编译与配置,以及开发工具链的选择。
环境
编译
工具链
02
音视频基础概念
采样率、比特率、编码格式(H.264/AAC)、封装格式(MP4/FLV)、YUV与RGB色彩空间。
概念
编码
色彩
03
FFmpeg核心数据结构
AVFormatContext、AVCodecContext、AVPacket、AVFrame的深入理解与使用。
FFmpeg
结构
API
04
FFmpeg解封装实战
打开媒体文件、读取数据包、分离音视频流,实现一个简单的媒体信息查看器。
解封装
媒体信息
05
FFmpeg解码实战
初始化解码器、解码视频帧与音频帧,处理解码后的数据,实现一个帧提取工具。
解码
帧提取
06
FFmpeg编码与封装实战
创建输出上下文、初始化编码器、编码音视频帧、写入文件,实现一个简单的转码器。
编码
封装
转码
07
FFmpeg滤镜链实战
使用滤镜实现视频缩放、裁剪、旋转、添加水印,以及音频混音与变速。
滤镜
特效
音频
08
SDL2入门与视频渲染
SDL窗口创建、事件处理、纹理渲染,将FFmpeg解码后的YUV数据渲染到屏幕。
SDL2
渲染
YUV
09
SDL2音频播放
SDL音频设备管理、音频回调函数、音频缓冲区管理,实现FFmpeg解码音频的实时播放。
音频
SDL2
播放
10
音视频同步基础
PTS/DTS时间戳理解、同步策略(音频为主、视频为主、外部时钟),实现一个简单的播放器。
同步
PTS
播放器
11
OpenCV图像处理基础
Mat数据结构、图像读写、颜色空间转换、图像滤波与边缘检测。
OpenCV
图像
滤波
12
OpenCV视频处理
视频读取与写入、帧处理、运动检测与背景减除。
视频
运动检测
13
OpenCV与FFmpeg结合
使用OpenCV处理FFmpeg解码帧,实现图像增强与特效。
结合
增强
特效
14
音频处理基础
PCM数据格式、音频重采样、音量调整、音频频谱分析基础。
PCM
重采样
频谱
15
音频编解码进阶
AAC编码器参数调优、音频质量评估、码率控制策略。
AAC
码率
质量
16
视频编解码进阶
H.264/H.265编码参数调优、GOP结构、码率控制(CBR/VBR/CRF)、编码质量评估。
H.264
H.265
GOP
17
封装格式深入
MP4文件结构(box/atom)、FLV与TS格式分析、音视频交错与时间线管理。
MP4
FLV
TS
18
流媒体协议基础
RTMP、HLS、RTSP协议原理与数据推拉流实战。
RTMP
HLS
RTSP
19
FFmpeg命令行工具
常用命令参数解析、批量处理脚本、自定义滤镜链。
命令行
脚本
滤镜
20
音视频采集
摄像头与麦克风数据采集、屏幕录制、采集参数设置与优化。
采集
摄像头
屏幕录制
21
音视频推流实战
使用FFmpeg API实现RTMP推流,搭建简单的直播推流工具。
推流
RTMP
直播
22
音视频拉流与播放
实现RTMP/RTSP拉流播放器,处理网络抖动与缓冲策略。
拉流
播放器
缓冲
23
视频剪辑与拼接
基于FFmpeg实现视频裁剪、拼接、转场特效,构建简易视频编辑器。
剪辑
拼接
转场
24
音频处理实战
音频降噪、回声消除、自动增益控制,实现一个音频预处理工具。
降噪
回声
AGC
25
字幕处理
SRT/ASS字幕解析、字幕渲染、硬字幕与软字幕嵌入。
字幕
SRT
ASS
26
性能优化
多线程解码、硬件加速(NVENC/QSV/VAAPI)、内存管理优化、缓存策略。
优化
硬件加速
多线程
27
错误处理与日志
FFmpeg错误码处理、自定义日志系统、异常恢复机制。
错误
日志
异常
28
跨平台开发
Windows/Linux/macOS平台差异处理、CMake构建系统、条件编译。
跨平台
CMake
条件编译
29
综合项目实战(上)
设计一个完整的视频播放器,包含UI、解码、渲染、同步、控制功能。
项目
播放器
综合
30
综合项目实战(下)
实现一个音视频转码与推流工具,集成滤镜、参数调优、进度反馈。
转码
推流
滤镜